public class Hanoi_test {
    public static void move(char pos1,char pos2) {
        System.out.print(pos1+"->"+pos2+" ");
    }

    /**
     *
     * @param n     有多少个圆盘
     * @param pos1  起始位置
     * @param pos2  中转位置
     * @param pos3  目标位置
     */
    public static void hanoi(int n,char pos1,char pos2,char pos3) {
        if(n == 1) {
            move(pos1,pos3);
            return;
        }
        //如果不是只剩一个的话 先需要借助pos3将（n-1）个圆盘挪到pos2
        //然后再把pos1位置的圆盘放到pos3
        //再借助pos1把圆盘放到pos3
        hanoi(n-1,pos1,pos3,pos2);
        move(pos1,pos3);
        hanoi(n-1,pos2,pos1,pos3);
    }
    public static void main(String[] args) {
        hanoi(4,'A','B','C');
    }
}
